security_check(); if ($resultat_session == 'c') { header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); die(); } else if ($resultat_session == '0') { header("Location: ../logout.php?auto=1"); die(); } if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } require('sanctions_func_lib.php'); $persoAutorise = TRUE; $msg=""; // recupération des parametres $periode=isset($_POST['periode']) ? $_POST['periode'] : (isset($_GET['periode']) ? $_GET['periode'] : NULL); // Pour pouvoir utiliser des modèles différents pour les fin et mi période, on n'imprime qu'un seul type à la fois $s_periode=isset($_POST['s_periode']) ? $_POST['s_periode'] : (isset($_GET['s_periode']) ? $_GET['s_periode'] : "n"); $id_classe=isset($_POST['id_classe']) ? $_POST['id_classe'] : (isset($_GET['id_classe']) ? $_GET['id_classe'] : NULL); $eleve=isset($_POST['eleve']) ? $_POST['eleve'] : (isset($_GET['eleve']) ? $_GET['eleve'] : NULL); if(getSettingANon("mod_disc_avertissements_mi_periode")) { $s_periode="n"; } //debug_var(); if($_SESSION['statut']=='professeur') { if(getSettingAOui('imprDiscProfAvtOOo')) { $tab_restriction_classes=get_classes_from_prof($_SESSION['login']); } elseif(getSettingAOui('imprDiscProfPAvtOOo')) { $tmp_tab=get_tab_ele_clas_pp($_SESSION['login']); $tab_restriction_classes=array(); for($loop2=0;$loop2"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)>0) { $cpt_resp=0; while($lig=mysqli_fetch_object($res)) { $tmp_tab_pers_id[$cpt_resp]=get_info_responsable("", $lig->pers_id); $cpt_resp++; } } debug_impr("Apres extraction des responsables"); /* // Mettre à jour la liste des variables dans: http://www.sylogix.org/projects/gepi/wiki/Mod_discipline_OOo_avertissements //get_info_responsable($login_resp, $pers_id="") //get_adresse_responsable($pers_id, $login_resp=""); $tab_adresse['adr_id']=$lig->adr_id; $tab_adresse['adr1']=$lig->adr1; $tab_adresse['adr2']=$lig->adr2; $tab_adresse['adr3']=$lig->adr3; $tab_adresse['cp']=$lig->cp; $tab_adresse['commune']=$lig->commune; $tab_adresse['pays']=$lig->pays; $tab_adresse['en_ligne']=$lig->adr1; */ $tmp_tab_info_parent=array(); if(getSettingAOui('mod_disc_avertissement_impression_parents_separes')) { debug_impr("mod_disc_avertissement_impression_parents_separes=true"); // On fera peut-être deux tours pour l'élève courant if(count($tmp_tab_pers_id)>1) { if(responsables_adresses_separees($current_eleve_login)) { // On va faire deux tours pour l'élève courant $tmp_tab_info_parent[0]['designation_resp']=$tmp_tab_pers_id[0]['civ_denomination']; $tmp_tab_info_parent[0]['adresse']=$tmp_tab_pers_id[0]['adresse']; $tmp_tab_info_parent[1]['designation_resp']=$tmp_tab_pers_id[1]['civ_denomination']; $tmp_tab_info_parent[1]['adresse']=$tmp_tab_pers_id[1]['adresse']; } else { // On ne va faire qu'un tour pour l'élève courant if($tmp_tab_pers_id[0]['nom']!=$tmp_tab_pers_id[1]['nom']) { $designation_resp=$tmp_tab_pers_id[0]['civilite']." ".$tmp_tab_pers_id[0]['nom']." ".$tmp_tab_pers_id[0]['prenom']." et ".$tmp_tab_pers_id[1]['civilite']." ".$tmp_tab_pers_id[1]['nom']." ".$tmp_tab_pers_id[1]['prenom']; } else { $designation_resp=$tmp_tab_pers_id[0]['civilite']." et ".$tmp_tab_pers_id[1]['civilite']." ".$tmp_tab_pers_id[0]['nom']." ".$tmp_tab_pers_id[0]['prenom']; } $tmp_tab_info_parent[0]['designation_resp']=$designation_resp; $tmp_tab_info_parent[0]['adresse']=$tmp_tab_pers_id[0]['adresse']; } } else { $tmp_tab_info_parent[0]['designation_resp']=$tmp_tab_pers_id[0]['civ_denomination']; $tmp_tab_info_parent[0]['adresse']=$tmp_tab_pers_id[0]['adresse']; } } else { debug_impr("mod_disc_avertissement_impression_parents_separes=false"); // On ne fera qu'un tour pour l'élève courant même si les parents sont séparés if(responsables_adresses_separees($current_eleve_login)) { $tmp_tab_info_parent[0]['designation_resp']=$tmp_tab_pers_id[0]['civ_denomination']; $tmp_tab_info_parent[0]['adresse']=$tmp_tab_pers_id[0]['adresse']; } elseif(count($tmp_tab_pers_id)>1) { if($tmp_tab_pers_id[0]['nom']!=$tmp_tab_pers_id[1]['nom']) { $designation_resp=$tmp_tab_pers_id[0]['civilite']." ".$tmp_tab_pers_id[0]['nom']." ".$tmp_tab_pers_id[0]['prenom']." et ".$tmp_tab_pers_id[1]['civilite']." ".$tmp_tab_pers_id[1]['nom']." ".$tmp_tab_pers_id[1]['prenom']; } else { $designation_resp=$tmp_tab_pers_id[0]['civilite']." et ".$tmp_tab_pers_id[1]['civilite']." ".$tmp_tab_pers_id[0]['nom']." ".$tmp_tab_pers_id[0]['prenom']; } $tmp_tab_info_parent[0]['designation_resp']=$designation_resp; $tmp_tab_info_parent[0]['adresse']=$tmp_tab_pers_id[0]['adresse']; } else { $tmp_tab_info_parent[0]['designation_resp']=$tmp_tab_pers_id[0]['civ_denomination']; $tmp_tab_info_parent[0]['adresse']=$tmp_tab_pers_id[0]['adresse']; } } debug_impr("Avant la boucle sur les parents"); for($loop_resp=0;$loop_resp0) { while($lig=mysqli_fetch_object($res)) { if($lig->num_periode==$current_periode) { $tab_eleves_OOo[$nb_eleve]['per'][$lig->num_periode]="X"; // Nom de la période $tab_eleves_OOo[$nb_eleve]['nomper']=$lig->nom_periode; } else { $tab_eleves_OOo[$nb_eleve]['per'][$lig->num_periode]=""; } } } $tab_eleves_OOo[$nb_eleve]['suivi_par']=getParamClasse($current_id_classe,'suivi_par',""); $tab_eleves_OOo[$nb_eleve]['suivi_par_alt']=getParamClasse($current_id_classe,'suivi_par_alt',""); $tab_eleves_OOo[$nb_eleve]['suivi_par_alt_fonction']=getParamClasse($current_id_classe,'suivi_par_alt_fonction',""); $tab_eleves_OOo[$nb_eleve]['titre_pp']=casse_mot(retourne_denomination_pp($current_id_classe), "majf2"); $tmp_tab_pp=get_tab_prof_suivi($current_id_classe); $liste_pp=""; for($loop_pp=0;$loop_pp0) { $liste_pp.=""; } $liste_pp.=affiche_utilisateur($tmp_tab_pp[$loop_pp], $current_id_classe); } $tab_eleves_OOo[$nb_eleve]['pp']=$liste_pp; $tab_eleves_OOo[$nb_eleve]['annee']=getSettingValue('gepiYear'); $tab_eleves_OOo[$nb_eleve]['etab']=getSettingValue('gepiSchoolName'); $tab_eleves_OOo[$nb_eleve]['adr1']=getSettingValue('gepiSchoolAdress1'); $tab_eleves_OOo[$nb_eleve]['adr2']=getSettingValue('gepiSchoolAdress2'); $tab_eleves_OOo[$nb_eleve]['cp']=getSettingValue('gepiSchoolZipCode'); $tab_eleves_OOo[$nb_eleve]['ville']=getSettingValue('gepiSchoolCity'); $tab_eleves_OOo[$nb_eleve]['tel']=getSettingValue('gepiSchoolTel'); $tab_eleves_OOo[$nb_eleve]['fax']=getSettingValue('gepiSchoolFax'); $tab_eleves_OOo[$nb_eleve]['email']=getSettingValue('gepiSchoolEmail'); $tab_eleves_OOo[$nb_eleve]['rne']=getSettingValue('gepiSchoolRne'); $tab_eleves_OOo[$nb_eleve]['acad']=getSettingValue('gepiSchoolAcademie'); // 20151125: A COMPLETER: Récupérer les infos parents pour pouvoir générer une ou deux fiches avec adresse selon que l'adresse est la même ou non // id_type_avertissement $tab_eleves_OOo[$nb_eleve]['ita']=array(); $tmp_tab=array(); //$sql="SELECT * FROM s_avertissements WHERE login_ele='".$current_eleve_login."' AND periode='".$current_periode."' AND s_periode='".$current_s_periode."';"; $sql="SELECT * FROM s_avertissements WHERE login_ele='".$current_eleve_login."' AND periode='".$current_periode."' AND s_periode='".$s_periode."';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)>0) { while($lig=mysqli_fetch_object($res)) { $tmp_tab[]=$lig->id_type_avertissement; } } foreach($tab_type_avertissement_fin_periode['id_type_avertissement'] as $key => $value) { if(in_array($key, $tmp_tab)) { $tab_eleves_OOo[$nb_eleve]['ita'][$key]="X"; } else { $tab_eleves_OOo[$nb_eleve]['ita'][$key]=""; } } // [eleves.sc.116A; if [val]='MS'; then X ; else ''] $tab_eleves_OOo[$nb_eleve]['designation_resp']=$tmp_tab_info_parent[$loop_resp]['designation_resp']; $tab_eleves_OOo[$nb_eleve]['resp_adr1']=$tmp_tab_info_parent[$loop_resp]['adresse']['adr1']; $tab_eleves_OOo[$nb_eleve]['resp_adr2']=$tmp_tab_info_parent[$loop_resp]['adresse']['adr2']; $tab_eleves_OOo[$nb_eleve]['resp_adr3']=$tmp_tab_info_parent[$loop_resp]['adresse']['adr3']; $tab_eleves_OOo[$nb_eleve]['resp_cp']=$tmp_tab_info_parent[$loop_resp]['adresse']['cp']; $tab_eleves_OOo[$nb_eleve]['resp_commune']=$tmp_tab_info_parent[$loop_resp]['adresse']['commune']; $tab_eleves_OOo[$nb_eleve]['resp_pays']=$tmp_tab_info_parent[$loop_resp]['adresse']['pays']; debug_impr("Fin du remplissage de \$tab_eleves_OOo[$nb_eleve]"); $nb_eleve++; } } } /* [eleves;block=begin] [eleves;block=end] echo "
";
	print_r($tab_eleves_OOo);
	echo "
"; */ $mode_ooo="imprime"; include_once('../tbs/tbs_class.php'); include_once('../tbs/plugins/tbs_plugin_opentbs.php'); // Création d'une classe TBS OOo class $OOo = new clsTinyButStrong; $OOo->Plugin(TBS_INSTALL, OPENTBS_PLUGIN); $prefixe_generation_hors_dossier_mod_ooo="../mod_ooo/"; if($s_periode=="y") { $nom_fichier_modele_ooo="avertissement_mi_periode.odt"; } else { $nom_fichier_modele_ooo="avertissement_fin_periode.odt"; } //les chemins contenant les données include_once("../mod_ooo/lib/chemin.inc.php"); $OOo->LoadTemplate($nom_dossier_modele_a_utiliser.$nom_fichier_modele_ooo, OPENTBS_ALREADY_UTF8); $OOo->MergeBlock('eleves',$tab_eleves_OOo); $nom_fic = $nom_fichier_modele_ooo; if(count($tab_liste_classes)<5) { if($s_periode=="y") { $nom_fic="avertissement_mi_periode"; } else { $nom_fic="avertissement_fin_periode"; } //$nom_fic="avertissement_fin_periode"; for($loop=0;$loopShow(OPENTBS_DOWNLOAD, $nom_fic); $OOo->remove(); //suppression des fichiers de travail $OOo->close(); die(); } //**************** EN-TETE ******************************* // End standart header $titre_page = "Impression des $mod_disc_terme_avertissement_fin_periode"; require_once("../lib/header.inc.php"); //******************************************************** //debug_var(); if(getSettingAOui('active_mod_discipline')) { echo "

Retour Retour"; } else { echo "

Retour Retour"; } if(!isset($periode)) { // Choix de la (des?) période(s) echo "

\n

Impression des $mod_disc_terme_avertissement_fin_periode

\n

Choix de la (ou des) période(s) :

"; //$sql="SELECT DISTINCT sa.periode FROM s_avertissements sa, j_eleves_classes jec WHERE sa.login_ele=jec.login AND jec.periode=sa.periode ORDER BY sa.periode;"; // Pour éviter des problèmes de ré-impression avec des élèves changeant de classe $sql="SELECT DISTINCT sa.periode FROM s_avertissements sa, j_eleves_classes jec WHERE sa.login_ele=jec.login ORDER BY sa.periode;"; //echo "$sql
"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { echo "

Aucun $mod_disc_terme_avertissement_fin_periode ne semble encore attribué.

\n"; } else { echo "

"; while($lig=mysqli_fetch_object($res)) { echo "
\n"; } echo "

"; if(!getSettingANon('mod_disc_avertissements_mi_periode')) { echo "

Imprimer les $mod_disc_terme_avertissement_fin_periode de


"; } else { echo " "; } } echo "


NOTES : Le fichier modèle OOo proposé par défaut utilise une police particulière pour les cases à cocher (gepi.ttf)
Il faut mettre en place cette police sur votre machine pour obtenir les cases correctement cochées.
A défaut, vous pouvez opter pour un autre mode d'affichage en créant votre propre modèle.
Quelques ressources :

  • http://www.sylogix.org/projects/gepi/wiki/GepiDoc_fbOooCalc)
  • Les champs tests sur les cases cochées pour les avertissements nécessitent que vous sachiez quel est l'identifiant de chaque sanction.
    Pour information, sur votre Gepi, la liste est la suivante : ".affiche_tab_type_avertissement()." Pour le type dont l'identifiant est 1 (si cet identifiant existe), le test serait
    [eleves.ita.1; if [val]='X'; then X ; else 0]
    Le X est traduit avec la police gepi.ttf par une case cochée, et le 0 par une case non cochée.
"; require("../lib/footer.inc.php"); die(); } if(!isset($id_classe)) { // Choix des classes $liste_periodes=implode(",", $periode); $input_periode=""; $chaine_periode=""; for($loop=0;$loop0) {$chaine_periode.=" OR ";} $chaine_periode.="sa.periode='".$periode[$loop]."'"; $input_periode.="\n"; } $chaine_s_periode=""; if($s_periode=="y") { $chaine_s_periode=" (mi-période)"; } echo " | Choisir d'autres périodes

Impression des $mod_disc_terme_avertissement_fin_periode en période(s) $liste_periodes".$chaine_s_periode."

\n

Choix de la (ou des) classe(s) :

$input_periode"; $sql="SELECT DISTINCT c.classe, jec.id_classe FROM s_avertissements sa, j_eleves_classes jec, classes c WHERE sa.login_ele=jec.login AND ($chaine_periode) AND s_periode='$s_periode' AND c.id=jec.id_classe ORDER BY c.classe;"; //echo "$sql
"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { echo "

Aucune classe n'a été trouvée???

\n"; } else { echo "

"; while($lig=mysqli_fetch_object($res)) { $afficher_ligne="y"; if(($_SESSION['statut']=='professeur')&&(!array_key_exists($lig->id_classe, $tab_restriction_classes))) { $afficher_ligne="n"; } if($afficher_ligne=="y") { echo "
\n"; } } echo "

"; } echo "

Tout cocher / Tout décocher

\n"; require("../lib/footer.inc.php"); die(); } //============================================================================== // Choix des élèves $chaine_retour_periode=""; for($loop=0;$loop0) {$chaine_retour_periode.="&";} $chaine_retour_periode.="periode[]=".$periode[$loop]; } $chaine_s_periode=""; if($s_periode=="y") { $chaine_s_periode=" (mi-période)"; } echo " | Choisir d'autres périodes | Choisir d'autres classes

Impression des ".$mod_disc_terme_avertissement_fin_periode.$chaine_s_periode."

Choix des élèves :

"; for($loop=0;$loop

Classe de ".get_nom_classe($id_classe[$loop])."

"; for($loop2=0;$loop2Période ".$periode[$loop2]."

"; if($loop==0) { echo " "; } $sql="SELECT DISTINCT e.nom, e.prenom, e.login FROM eleves e, j_eleves_classes jec, s_avertissements sa WHERE e.login=jec.login AND jec.id_classe='".$id_classe[$loop]."' AND e.login=sa.login_ele AND sa.periode='".$periode[$loop2]."' AND sa.s_periode='".$s_periode."' ORDER BY e.nom, e.prenom;"; //echo "$sql
"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { echo "

Aucun élève.

"; } else { echo "

"; $cpt=0; while($lig=mysqli_fetch_object($res)) { echo " login."\" />
\n"; $cpt++; } echo "

"; } } echo " "; } echo "

Tout cocher / Tout décocher

\n"; require("../lib/footer.inc.php"); ?>